2 11137 - Ingenuous Cubrency [UVa Online Judge]
3 Andrés Mejía-Posada [http://blogaritmo.factorcomun.org]
5 Programación dinámica, coin change
13 const int COINS
= 21, MONEY
= 9999;
18 dp[i][j] = Utilizando las primeras i monedas, de cuantas maneras puedo fomar exactamente j cubos?
20 unsigned long long dp
[COINS
][MONEY
+1];
23 for (int i
=1; i
<=COINS
; ++i
){
27 for (int i
=0; i
<COINS
; ++i
){
28 dp
[i
][0] = 1ULL; //Cero cubos los puedo formar de una única manera: coger ninguna moneda.
29 for (int j
=1; j
<=MONEY
; ++j
){
31 if (i
> 0) dp
[i
][j
] += dp
[i
-1][j
];
32 if (j
- coins
[i
] >= 0) dp
[i
][j
] += dp
[i
][j
- coins
[i
]];
37 while (cin
>> n
) cout
<< dp
[COINS
-1][n
] << endl
;